Ctrlv
Code paste-bin and editor.

Features
- [x] Simple and clean UI
- [x] Editor with syntax highlighting
- [x] Saving with expiration
- [x] Forking
- [ ] Editor plugins (in progress, see below)
- [ ] Code screenshots (in progress)
- [ ] CLI tool (planned)
- [x] Works on mobile (see image below)
- [ ] User accounts (planned)
- [ ] Non-expiring
- [ ] Delete
Mobile view
Editor plugins
- VS Code
- Neovim (coming soon)
Development and Self-hosting
Local dev
- If you need to override config (like what is in
config/dev.exs), do so in aconfig/dev.secret.exsfile. (same fortest) - To get deps and setup the DB run
mix setup - 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
- [x] Save
- [x] Fork
- [x] New
- [x]
CodeMirror 6 languages - [x]
CodeMirror Legacy languages - [x] Elixir language
- [x] Limit content length
- [ ] Cache
- [ ] Rate-limiting
save - [x] Delete expired pastes
- [ ] Testing and Static Analysis
- [ ] ExUnit
- [ ] Credo
- [ ] Dialyzer
- [ ] CI/CD (Github actions)
- [x] Deploy
- [ ] meta/og tags for better links
- [x] Mobile menus
- [ ] Overlayed alerts/errors
v2.0
- [x] Monaco editor
- [x] Improve/fix "flash" between
showandfork - [ ] 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:
- Elixir
- Phoenix Framework
- Monaco Editor
- PostgreSQL
- Tailwind CSS
- TypeScript
- See mix.exs deps and package.json for more.
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.