Skip to content

ryanwinchester/ctrlv

Repository files navigation

Ctrlv

Code paste-bin and editor.

ctrlv-02

Features

  • Simple and clean UI
  • Editor with syntax highlighting
  • Saving with expiration
  • Forking
  • Editor plugins (in progress, see below)
  • Code screenshots (in progress)
  • CLI tool (planned)
  • Works on mobile (see image below)
  • User accounts (planned)
    • Non-expiring
    • Delete

Mobile view

ctrlv mobile

Editor plugins

Development and Self-hosting

Local dev

  1. If you need to override config (like what is in config/dev.exs), do so in a config/dev.secret.exs file. (same for test)
  2. To get deps and setup the DB run mix setup
  3. To start with an IEx console run iex -S mix phx.server

Deploy

Deploying on fly.io

Change the "app" name in fly.toml and run fly launch.

Deploying elsewhere

Use the Dockerfile to build an image and deploy it.

Roadmap

v1.0

  • Save
  • Fork
  • New
  • CodeMirror 6 languages
  • CodeMirror Legacy languages
  • Elixir language
  • Limit content length
  • Cache
  • Rate-limiting save
  • Delete expired pastes
  • Testing and Static Analysis
    • ExUnit
    • Credo
    • Dialyzer
  • CI/CD (Github actions)
  • Deploy
  • meta/og tags for better links
  • Mobile menus
  • Overlayed alerts/errors

v2.0

  • Monaco editor
  • Improve/fix "flash" between show and fork
  • Versions
  • Advanced settings (tabSize, etc)
  • Help menu
  • Real-time(ish) code updates

v3.0 (potential ideas/wishlist for now)

  • User accounts for non-expiring, and deletable pastes

About

Why did I make this?

To be honest, I just don't like most pastebin things for code, and the ones I do like don't support Elixir syntax highlighting. That's the reason I started it.

I just want a non-cluttered UI and support for the languages I use.

Main technologies:

Copyright and License

Copyright 2022 Ryan Winchester

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.