Try Documentalist, my app that offers fast, offline access to 190+ programmer API docs.
Online file management
Like https://github.com/shundhammer/qdirstat but for s3, dropbox etc. https://news.ycombinator.com/item?id=16189929
A series of Notepad For X projects. The same UI but using different backends.
- https://codesandbox.io/u/kjk : for editor UI
Maybe a windows/mac app. Maybe a web-based app.
Main feature would be speed and search.
See grokbit for inspiration.
Related / inspiration:
- https://github.com/AdrianBZG/SyncMe : Dropbox and Google Drive, QT, C++, 2 pane UI
- http://cloudcmd.io : web-based, 2 pane, written in node, 2 pane UI, only for local files
- https://github.com/azproduction/node-mc : Midnight Commander in node/react
- http://mac.eltima.com/file-manager.html : mac native app, $30 for PRO (cloud support)
- https://github.com/alex-phillips/node-clouddrive : Amazon Cloud Drive CLI and SDK
- https://github.com/ncw/rclone : Sync files to and from Google Drive, S3, Swift, Cloudfiles, Dropbox and Google Cloud Storage
- https://github.com/DanielDe/org-web/tree/master/src/sync_backend_clients : example dropbox and drive client-side backends
- e each folder is in its own window, which is as small as possible
- similar to list of files in http://gotools.org/github.com/PuerkitoBio/goquery#expandgo
- can open as many folders as wishes
- each folder could be it's own window or could try to arrange them inside a single window
handling multiple folders
- each folder is its own top-level window
- try to arrange inside a single top-level window (the problem is of intelligently arranging the pieces inside also leaves empty space vertically)
- each folder is its own top-level window but we mark all but one as participating in the alt-tab etc. and we provide an illusion they're a single group (by moving them as a group when the window is being moved)
- width can't get bigger than the biggest item
width can be smaller than the biggest itme, in which case there are few possibilities
- use smaller font
- shorten the string by replacing part of text (e.g. middle) with "..."
- truncate right
- height can't be bigger than the total length of items
- height can be smaller, in which case do traditional scrolling
- each folder has a search box to add a filter
- content needs to auto-update
It's stupid they it's in PDF. Make it HTML and with decent UI for going to parts.
Could be a good advertising for offdocs app.
UI could be improved. list all commands at the top; add a search box at the top. drop-down at the top for list of commands. list all commands in a sidebar
tldr2.org is available
With search like https://www.studiopixl.com/vulkan/
shows detailed information about PDF files
A web service where peopel can upload a PDF and get a reader application for Windows that protects the PDF from being copied.
It would cost between $10-$100 to protect a single PDF, unlimited distribution.
Build the reader using pdfium, 32-bit only, maybe using WinForms for the viewer app.
Sequence of events:
- compile pdfium library
- write the simplest reader that uses external encrypted PDF file
- write website that encrypts uploaded PDF file
For faster PDF rendering, re-compile it. PDF format is rather complicated, mostly text format. A PDF renderer first has to parse it into in-memory representation and then renders it.
Imagine a binary format that is designed for fast loading and one-time PDF => binary format compilation step. With the right format, parsing step could essentially be eliminated.
We could even improve rendering time with some additional optimizations.
For example, there are PDF documents with gigantic images (think 4000 x 4000 pixels) that could be resized to some reasonable value and saved in a format that is fastest to decode.
I’m sure there are optimizations possible for complex vector graphics (e.g. removing stuff that we know will be invisible).
A website that allows comparing of poppler vs. mupdf vs. pdfium vs pdf.js rendering. Upload a PDF, render each page in each engine in both native size and down-scaled to a reasonably sized thumbnail for overview. The baisc layout would be:
[page 1 mupdf] [page 1 pdfium] [page 1 poppler][page 2 mupdf] [page 2 pdfium] [page 2 poppler] …
Then one could click on the thumbnail to see comparison of the native size.
Bonus feature: some type of overlay comparison.
Electron (Windows/Mac) app for converting html to pdf. Sell for $29, free version can be limited to e.g. 100 free generations.
https://github.com/jurgelenas/pdfify-server, https://github.com/fraserxu/electron-pdf, https://github.com/bjrmatos/electron-html-to, https://github.com/arachnys/athenapdf
A textbox where users enter url, show html preview and pdf preview. Create PDF using chrome apis and allow downloading. Allow cmd-line usage. Use mupdf or https://github.com/gerhardberger/electron-pdf-window to host preview after it's generated.
Advanced features would allow customizing PDF (change background, fonts etc.; works by over-writing css).
Write a tool to extract text from PDF files.
Upload the file and get text in plain text file and json (augmented with position information) and maybe even xml.
Limit size of PDF files. Upsell to $19 mac/windows. Write a command-line tool, maybe even open-sources, also upsell GUI version.
Good example of upselling to a better version: https://www.spyfu.com
Cmd-line tool for windows, based on Pdfium. Many people use Sumatra for PDF printing but printing is not great there.
Pdfium should print well. Ship as a single executable which extract pdfium.dll on demand.
Make it free for personal use. Make it $99 for commercial use.
Mac to windows
http://xscopeapp.com/ in C#
Port one or more of the following utilities to Windows:
http://tapbots.com/software/pastebot/#sync i.e. an app that observes clipboard and remembers text/images that were pasted there. Could sync with the cloud. http://log.chrisbowler.com/post/308603065/pastebot
https://aptonic.com/, $10 mac app
Also https://lifehacker.com/5909194/dragondrop-adds-a-holding-bin-to-drag-and-drop-on-mac (the app no longer available)
http://www.highcriteria.com/ ($18, $36, $54)
https://github.com/rygorous/kkapture : video/audio capture library that uses minhook
https://github.com/endrazine/wcc on the web
Make a web front-end for this tool
Could be a web app, desktop app using electron/native browser control wrapper.
Other things that it might also do: http://mattwarren.org/2018/06/15/Tools-for-Exploring-.NET-Internals/
Web-based program similar to http://ilspy.net/
- http://parnold-x.github.io/nasc/, http://onethingwell.org/post/127630750293/nasc
- http://www.acqualia.com/soulver/, http://onethingwell.org/post/532997954/soulver-is-a-new-kind-of-calculator-application
- https://numi.io/, http://onethingwell.org/post/126583572564/numi
- http://calca.io/, http://onethingwell.org/post/70300420530/calca : markdown editor with built-in calculations
- http://speedcrunch.org/, https://bitbucket.org/heldercorreia/speedcrunch/ : desktop app in C++/Qt
- http://www.skytopia.com/software/opalcalc/ , http://onethingwell.org/post/11271188299/opalcalc
- https://github.com/sharkdp/insect, https://news.ycombinator.com/item?id=14625795, https://news.ycombinator.com/item?id=13909631, author: https://news.ycombinator.com/threads?id=sharkdp
- http://mathjs.org/ : used by mathnotepad.com
Make a free web version, maybe even chrome extension. Upsell on $9-$29 mac/windows version.
https://github.com/kornelski/giflossy on the web
Write a simple source code indexer for C++ code. Use it for Sumatra code.
- https://github.com/OpenGrok/OpenGrok (in java)
Combines searching with browsing.
An easier way to do linux inspection/debugging tasks.
Start an agent written in Go on remote machine. It provides web-based UI either by talking to the server or to a local Electron app.
- browse, edit files
- systemd info (status of processes etc.)
- network information
- disk information
- view logs
- view (and explain) configuration
- recognize most commonly used software (nginx, apache, mysql, postgres etc.) and provide infor about them
- https://github.com/rapidloop/rtop : shows how to deploy an app over ssh in Go
- http://0xfee1dead.top/, https://news.ycombinator.com/item?id=15601027
- https://github.com/yudai/gotty, https://news.ycombinator.com/item?id=10075313
- https://github.com/acksin/strum : summarizes system state
- https://seashells.io/, https://news.ycombinator.com/item?id=14737118
- https://tmate.io/, https://github.com/tmate-io/tmate
- http://www.loadavg.com/, https://github.com/loadiavg/loadavg
- https://github.com/joewalnes/web-vmstats (web-based server stats)
Could start by making a server for https://github.com/yudai/gotty.
Then could write a windows GUI front-end that ssh to the server and runs a command.
Use web as a front-end. Mac and Windows native apps. Backend in Go. Mac uses thin Cocoa wrapper around webview. On Windows a C# thin wrapper around cef or C++ thin wrapper around the new project from awesomium. A remote agent is copied to a linux server and the UI talks to it using some simple protocol.
Like saw (https://github.com/TylerBrock/saw) but as a desktop app.
Allows to connect to various, local and remote sources of logs and stream them locally. Add a fast search, multiple tabs, combining multiple log sources into one stream.
Can stream any logs on remote ssh servers and whatever online services expose logs.
Crucial for success:
- fast search in the app
- fast display. Look into xterm.js to see how they optimized text display using canvas
Local application where one can get browse-based shell/ide to a remote serve. Like nitrous.io or c9.io but as a local app which allows running on your own server. Works by deploying a Go agent via ssh to the server, agent talking back to local app or to the server.
Some ideas from DTerm: http://www.decimus.net/dterm.php
An improved ssh terminal. Improvements:
- miniature windows for switching between terminals (instead of tabs)
- built-in file browser of the remote system
- on-the-side command execution with capture of stdout
- log all commands and their stdout, per machine (ip address)
- intellisense for typed commands i.e. remembers all typed commands and shows a pop-up with matches for the currently typed command
- support for ec2 instances
- https://www.shellvault.io/, https://news.ycombinator.com/item?id=18873652
- https://landscape.canonical.com/ - might use some of their ideas
- http://www.coralbits.com/oterm/, https://news.ycombinator.com/item?id=6941281
Llike http://itunes.apple.com/us/app/coderunner/id433335799?mt=12 except on the web, Go on the backend, add social features.
Make it somewhat like StackOverflow i.e. people can tag a given code snippet with "Question" when it doesn't work or it doesn't behave the way they think it should. We would have a separate section on the website showing questions and basically replicate StackOverflow functionality (adding answers, accepting, uprooting etc.)
Add "critique my code" section where people can post working code and ask other people to improve. Other people could submit improvements, they could be upvoted, viewed as diffs, people would earn badges etc.
- https://coderpad.io/ - 141.224 alexa rank (nitrous.io is 46.282, codepen.io is 1372, github.io is 307)
- http://runnable.io 725.589 alexa rank, it's like nitrous.io, runnable.com is the small snippet execution
- http://kopy.io/ - a pastebin-like thingy
- https://coderpad.io/ - for interviews
- http://www.firepad.io/ - a service/library for collaborative code and text editing
- https://www.hackerearth.com/ (https://code.hackerearth.com)
- https://blog.codeanywhere.com/openvz-tc-and-udp-flood/ - how to limit traffic
A better visualization of how your stocks perform over time.
- https://github.com/oguzhaninan/Stacer is written in C++. Rewrite in Go and figure out how to charge for it
It uses antlr for the grammar so should be easy
Needs to be downloaded and run locally. Write a Go program that talks to a server. Maybe charge.
It's a simple C compiler.
Make pandoc as online tool.
the simplest program that launches gotop remotely via ssh and shows the output in xterm.js hosted inside a web browser
Start with remotetop (rtop ?) that simply copies gotop over ssh to a remote server and launches it
Then provide web version that does the same but acts as a web server and shows in locally installed web server.
Then a version that uses lorca to launch in chrome.
Then native mac app that uses embedded web view.
Then native windows version that uses cef (or maybe electron).
like https://github.com/sveinbjornt/Sloth but using web view (in a skeleton objective-c app or lorca) to display data. better ui
https://github.com/yudai/gotty (12k stars)
https://tsl0922.github.io/ttyd/ (2k stars)
Probably not a pain big enough to make money, but the idea is to provide a server for gotty / tttyd - like program and charge people for use.
- on the web using webassembly
- a native mac/windows app, either paid (advertised from the web version) or as an advertisement for other software
- fileoptimizer.io domain is free
- write open-source, command line tool as a marketing for GUI version
- https://mozjpeg.codelove.de/ : online mozjpeg
- https://github.com/imagemin : node-based, combines lots of tools into one
- https://imageoptim.com/mac : simple mac client, open source
- http://nikkhokkho.sourceforge.net/static.php?page=FileOptimizer : multi-format, for windows, open-source
- https://www.proteusthemes.com/blog/ultimate-guide-image-optimization-wordpress/ : comparison of existing websites that do that
- https://tinypng.com/ is a nice design for such a service
- https://github.com/ImageOptim/gifski, https://news.ycombinator.com/item?id=15730018
https://gif.ski/ for web
MSI file format reader:
- https://github.com/ironfede/openmcdf : pure C# implementation
- https://www.developerfusion.com/article/84406/com-structured-storage-from-net/ : using win api from C# via pinvoke
- https://gist.github.com/SheetJSDev/611a5f4fe82b90c69f91d5cecc6ba876 : decodes msi names
Allow people to drop a .pcap file and provide UI for viewing the files.
See eg. https://github.com/ga0/netgraph
For web or desktop apps
Inspiration / competition:
- http://www.synalysis.net/ : mac app
- https://github.com/sharkdp/hexyl, https://news.ycombinator.com/item?id=18865264 : has nice trick: coloring bytes based on type
Could be windows GUI for https://github.com/martinlindhe/formats
Inspiration / competition:
https://github.com/zavolokas/Inpainting on the web
Like https://github.com/vividvilla/csvtotable but as a web service. Allows dropping CSV file, stores it indexdb, uses web service workers to convert to a table, allows sharing by uploading to a server and generating a url that would then download the file locally if not already present, using sha1
Names: ViewCSV, ShareCSV
Could then add excel etc.
Drop a file and it tells you what kind of file it is.
- https://www.garykessler.net/library/file_sigs.html : list of file signatures
SEO / analytics related
siterankmonitor.com is available
Write free (and maybe open-sourced) cmd-line utility for windows/mac. Write GUI front-end for mac/windows and charge $29 for it. Cmd-line app is an advertisement for gui app.
Write web-based UI with limited functionality (number of pages crawled). Use it as advertisement for gui app.
Potentially have pro plan for web version which has no limits, allows running checks every day/week and e-mail if there are problems.
Can expand into web archiving utility.
Make it for myself. Only shows the basic info (most popular pages, most popular searches), yearly visitors. Open source, easy to host for free on firebase. Based on https://www.notion.so/Google-Analytics-ab8c1b1d6a3f4cc1a25e5349202407d3#c6a047492d7145acb9cfe8b29fc65047
A service that sends daily/weekly google analytics summary, where it shows only the most important information.
Use https://github.com/hmol/LinkCrawler as a base, add UI
or maybe in Go, use https://github.com/dbalduini/smeago/tree/master/src as base for the crawler
Build a web service that builds google sitemaps (https://support.google.com/webmasters/answer/183668?hl=en&ref_topic=4581190). It crawls the website and builds .xml or .txt file with links, describes how to submit it to google etc. It should use chrome headless.
It should aggressively cache the results to avoid re-crawling websites. Url should be /tools/build-submit-google-sitemap.html. Maybe use a domain like webtools.io/build-submit-google-sitemap.html
To make money limit web service to N links (100? 256?) and up-sell a $10-$30 windows/mac desktop app build on electron.
Basically, https://www.xml-sitemaps.com but better.
Web publishing / editing tools
Better UI for GitHub Gist. Like gistbox/cacher.A web application for managing gists.
Gistbox got 10k users in frist few months, 75k in 5 years when it became Cacher (which is $6/mo for pro plan, $8/seat for team).
Competition / inspiration:
- https://www.cacher.io/ (was gistbox).
- http://www.shpakovski.com/codebox/ : mac app
- http://gistlyn.com/?gist=52c37e37b51a0ec92810477be34695ae&collection=2cc6b5db6afd3ccb0d0149e55fdb3a6a, https://github.com/ServiceStack/Gistlyn/tree/master/src/Gistlyn
- https://1ucasvb.tumblr.com/page/2 , (but 2 on a page, or adaptive to window’s width)
A notepad-like editor for taking notes quickly.
Uses Monaco editor. Saves notes in local storage.
Charge people $12/year if they want to persist notes e.g. in Drive, Dropbox etc.
Write a "New tab" Chrome extension that opens the editor like https://news.ycombinator.com/item?id=17506753
Optionally it's a markdown editor, but it's meant for plain-text notes first.
http://rickbergfalk.github.io/sqlpad/ is MIT-licensed app written in node. Package it as a desktop electron app and distribute via my website. Or maybe setup a public instance (after adding logging in or maybe storing credentials locally in the browser)
Port pgHero to Go and wrap as a Windows and Mac app.
Do the same for https://redash.io/ (they are $29/mo)
https://pgmetrics.io/ is a open-source cmd-line app that dumps postgres stats to stdout. Write a desktop app that shows the same thing.
Just wrap https://github.com/sosedoff/pgweb in a Mac and Windows app
A gui for analyzing sqlite database on a deeper level. Written in Go, windows front-end.
cmd-line to gui
Write windows desktop app like https://github.com/soheilpro/mon. Do it either the hard way (pure win32) or C# or sciter.
mylg.io web frontend or Mac "native" app (multipe network tools in one)
http://mylg.io/ is in Go with MIT license. Write a web front-end for it that allows to access the utility via web interface. The idea is that an agent can be deployed on a host via ssh and it connects to a website via grpc. Alternatively, do a "native" Mac app, where UI is web view talking to a Go server
Like cd, but gui version. Like https://github.com/mattn/cho but with GUI.
Must be fully operable from the keyboard:
- arrow up/down navigates current directory
- enter or right enters the directory
- ctrl-enter selects a directory (closes the window and prints the result to stdout)
- esc closes the window (cancels the operation)
- / or f or s : shows search ui where can quickly find any directory
- a way to bookmark/unbookmark directories (F1? shift-8 i.e. '*' ?)
- shows bookmarked directories e.g. at the bottom, for quick access. Allow e.g. Ctrl-<n> or Alt-<n> to select bookmarked directory
https://github.com/orf/gping as a windows GUI app
https://github.com/sshuttle/sshuttle is written in python.
Write a GUI front-end, possibly port to Go and also to Windows.
A simple program to wrap https://github.com/muesli/smartcrop
A GUI for aws, maybe can use https://github.com/wallix/awless for the backend (https://medium.com/@awlessCLI/aws-management-simplified-awless-io-0-1-0-2ec2d8810bcb)
(awk, sed, cut, join, and sort for name-indexed data such as CSV, TSV, and tabular JSON)
The weakness of such cmd-line tools is that they require writing of the whole sequence of operations up-front. There are 3 problems with that:
- the syntax is rather arcane
- the user doesn’t see the data he’s operating on
- mistakes are costly i.e. changing the operations has to redo all computation from scratch
A better approach is to allow humans multi-step refinements of data in a UI that shows the preview of the operations.
For example, the operation:
$ mlr --icsv --opprint --barred \ put '$tiv_delta = $tiv_2012 - $tiv_2011; unset $tiv_2011, $tiv_2012' \ then sort -nr tiv_delta flins.csv
Would be done as sequence of steps
> load flins.csv $1: 215 records show first 10 records + headers > add tiv_delta = $tiv_2012 - $tiv_2011 $2: 215 records ... 10 record preview > remove tiv_2011 tiv_2012 $3: 215 records ... 10 record preview > sort by tiv_delta $4: 215 records ... 10 record preview > save flins_sorted.csv
“add”, “remove”, “sort by”, “save” are operations that work on list of records. If argument is not provided, it’s implicitly the last result. The argument can be explicitly provided e.g.:
> $2 save flins_sorted_2.csv
http://visidata.org/ is for tabular data interaction in the terminal. Make a web version.
Write GUI version of those tools. The simplest is a browser shell with xterm.js as front-end and just sub-launch the command and redirect output to xterm.js.
More sophisticated would be tools that do the functionality but re-imagined for GUI. Implemented with web UI.
Write a Mac and/or Windows GUI version of tig https://github.com/jonas/tig.
Tig has 4.5k stars on github, which implies a significant interest.
Maybe a paid desktop app for windows or mac or purely on the web (or both and use web version to sell desktop app)
Or it could be done with https://sciter.com/. Or Winforms on Windows and Swift/Cocoa on Mac.
It's a plugin for VS Code. Make it a stand-alone desktop app with Electron.
sumatra on-line + electron desktop app
Use API from http://cloudplatform.googleblog.com/2018/02/introducing-Cloud-Billing-Catalog-API-GCP-pricing-in-real-time.html.
Windows / Mac app that unobtrusively lives in background and shows the GCE spend. On Mac it would be menu bar app that expands to full window on demand and maybe even to a website where you can export the billing in various formats (csv, import as google sheets etc.)
https://www.sapien.com/software/wmiexplorer sells for $49 and has shitty UI. Write better UI in Go. For SEO build a website that has better UI than msdn and lists the same information (scraped). Also promote from my fork of wmi library for Go.
This is a 2d renderer for Java.
https://github.com/wokhansoft/WFN/ is GPL and uses WPF.
Rewrite in Winforms and sell.
Compile with webassembly, like https://github.com/rhysd/vim.wasm
It's a tool for viewing sampling profiles, in the browser. Make it a Go backend/native app with embedded browser control for the frontend.
https://github.com/mapbox/flamebearer for Go
Implement the same thing for Go
A better way to do common things in shell e.g.
> se `dir(.).where(globMatch(name, "*.Token.java")).sortBy(size).select(path)`
seis the name for the program (Shell Executor)
The breakdown is:
dir(path)is a stream of files with their attributes
where(cond)is a filter that rejects items that don't match condition
globMatch(attribute, match)returns true if attribute of the item matches
matchper glob algorithm (simple file name matching). we can also provide
rxMatch()(or maybe for short just
sortBy(attribute)sorts by an attribute
select(attribute, ...attribute, ... attribute)selects only given attributes from the item
The big idea is that commands operate on arrays of items (attribute / value pairs) and the commands either transform the array (remove/rearrange/add) or the items (remove attributes.
Add other sources of data, like netstat-like information about network connection
- sse Scriptable System Explorer
Could also make it a GUI app that would allow showing the results in GUI. The same scripts could show the results in a window.
A web-based REPL for enhanced Go. The simplest implementation just hooks up a process to xterm.js
Write a windows/mac app that allows accessing all the file storage services (Google Drive, Dropbox, S3, Google Storage, Digital Ocean Spaces, ftp, sftp etc.) as NSF. NSF because it allows user-space implementation and can be mounted on Mac and Windows.
Implemented as Go NFS server and a bit of UI to provide credentials and automate mounting on the client.
From UI perspective it would be better to write it as a samba server, but probably much harder.
- https://github.com/Zilog8/UNFS2GO : Go UNFS server that CGO with C library
- https://github.com/joyent/sdc-nfs : NFS server in node.js
- https://github.com/davecheney/nfs : NFS client in Go
It's an Electron app.
https://github.com/firemanjs/fireman : fireman is an electron-based GUI for firebase
https://github.com/miku/zek web hosted
add to online tools