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
- 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
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
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.
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.
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
http://www.highcriteria.com/ ($18, $36, $54)
https://github.com/rygorous/kkapture : video/audio capture library that uses minhook
- 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.
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
- 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.
Needs to be downloaded and run locally. Write a Go program that talks to a server. Maybe charge.
Make pandoc as online tool.
- 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
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
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
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.
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.
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.
GitHub has wikis but they are merely passable, not good:
- the editing UI is very bare bones
- the way they are displayed could also be improved
GitHub wiki is just a repository. If your project is foo/bar, main repo is github.com/foo/bar.git and wiki repo is github.com/foo/bar.wiki.git
Unclear how to get commit rights. In the worst case scenario could fork the repo and provide instructions for how to manually merge into main repo. Hopefully it’s possible to do from GitHub API.
Business model: either charge individuals a little bit per month ($2-$10) for the editor or make public repos free and charge more for privet repos, like $30/month. The idea here is that private repos are used by companies, which can afford to pay more.
Free access for public repos would act as free advertisement.
The business idea is similar to other companies built on top of GitHub, like https://www.zenhub.com/
Core insight: Cloud Firestore database has a free usage tier big enough to make hosting a personal blog essentially free. Firebase also provides enough of a backend functionality to implement a blog (authentication, database etc.).
One could build a single page app that includes all the important functionality of a blog.
USP (Unique Selling Proposition) would be: * cheap (almost free) to host * easy to deploy (follow a tutorial custom written for the software) * many themes (write it so that it can use e.g. Hugo or Jekyll themes)
Written in Vue.
Unfortunately, there’s no money in it.
Publish content in Notion as:
- api documentation
- FAQ base
Host for free on Netlify using their API.
Free version would have a link back to the tool for SEO.
For others, charge:
- $10 one time fee for a blog
- $10/month for docs/FAQ ($100 one time fee for export to github)
Paid version also allows custom google analytics, maybe other features.
Written in Go on the backend, firebase for database an auth.
Provide many templates e.g. use Hugo templates.
For books, generate landing pages like http://goinpracticebook.com/
- https://landing.google.com/sre/book/index.html : nice design for a book
- https://segment.com/docs/spec/ : a nice design for documentation
- https://forestry.io/#/ : similar model but they provide editing. Could steal some of their workflows.
- https://developerhub.io/ : nicely designed docs
- https://github.com/hibiken/stories : blog with medium design, https://news.ycombinator.com/item?id=17994851
- https://www.youdontneedwp.com/ : similar service for Google Docs
A possible style for generating PDF:
- write a landing page e.g. https://telepost.io/ is a simple example
Like http://launchaco.com/ but for blogs.
The idea is to use someone else's hosting (github pages, gitlab pages) and provide an easy way to deploy and update a nice blog (allow people to select templates).
- a visual way to select a blog template
- allow tweaking basics (colors)
- a markdown editor for adding/changing posts
- deploy a static site on github pages etc.
- can be on the web or an electron app
- allow to create and deploy first post for free, charge very small amount ($1/month or one-time fee of $9-$29) for being able to add/edit posts
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)
A gui for analyzing sqlite database on a deeper level. Written in Go, windows front-end.
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-
or Alt- to select bookmarked directory
(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.
Like Sumatra but for the web. Uses wasm for decoding images.
Could be serverless for most functionality (store things in indexedb).
Could have a pro version that
Could have electron-based desktop app.
Start with comic book reader, because that's the simplest.
- https://github.com/louischatriot/reader : a simple image reader
- https://github.com/comicweb/kthoom : comic book reader
- https://github.com/LibreRead/server : epub reader
- https://medium.com/google-design/google-photos-45b714dfbed1 : description of Google Photo layout and other implemenation details. Relevant for comic book viewer
- https://onedrive.live.com/?authkey=!ALH5Ofp8QJpafCA&v=photos&id=DC1D63D0C3D0B4A2!17238&cid=DC1D63D0C3D0B4A2 : decent UI for seeing multiple images
- https://github.com/kyicy/readimension, https://github.com/satorumurmur/bibi : epub reader on web
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.
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.
A better way to do common things in shell e.g.
> se `dir(.).where(globMatch(name, "*.Token.java")).sortBy(size).select(path)`
se is 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.
dir(.) instead of
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.
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