diff --git a/.gitignore b/.gitignore
index 9922887..3a2852f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,4 +17,13 @@ _build
*.iml
rebar3.crashdump
*~
+
+# Ignore generated flamegraphs
*.bggg
+flamegraphs/*
+
+# Ignore generated documentation html
+doc/*.html
+doc/*.png
+doc/*.css
+doc/edoc-info
diff --git a/doc/overview.edoc b/doc/overview.edoc
new file mode 100644
index 0000000..24243e8
--- /dev/null
+++ b/doc/overview.edoc
@@ -0,0 +1,20 @@
+@title
+
+@doc
+
+
+eFlambè is designed to be the first profiling tool you reach for during development. It is designed for rapid visualization of program execution. It generates one or more flamegraphs of any function you specify. You can easily select function(s) to profile in the shell without having to alter your code or restart your application. This tool has two distinct advantages over existing flamegraph generators in Erlang:
+
+
+
+Copyright © 2021 Trevor Brown (Apache-2.0 License)
+@end
diff --git a/src/eflambe.erl b/src/eflambe.erl
index 288e0dd..590f939 100644
--- a/src/eflambe.erl
+++ b/src/eflambe.erl
@@ -1,8 +1,8 @@
%%%-------------------------------------------------------------------
+%%% @copyright 2021 Trevor Brown (Apache-2.0 License)
%%% @doc
-%%% This module provides the public API for eflambe. These public functions are
-%%% intended to be invoked by the end user to perform profiling of their
-%%% application.
+%%% eflambe profiling functions. Invoke these public functions to perform
+%%% profiling of functions in your Erlang/Elixir application.
%%% @end
%%%-------------------------------------------------------------------
-module(eflambe).
diff --git a/src/eflambe_app.erl b/src/eflambe_app.erl
index b308ce9..5460a6c 100644
--- a/src/eflambe_app.erl
+++ b/src/eflambe_app.erl
@@ -1,6 +1,7 @@
%%%-------------------------------------------------------------------
%% @doc eflambe public API
%% @end
+%% @hidden
%%%-------------------------------------------------------------------
-module(eflambe_app).
diff --git a/src/eflambe_brendan_gregg.erl b/src/eflambe_brendan_gregg.erl
index 4103880..0e0a20b 100644
--- a/src/eflambe_brendan_gregg.erl
+++ b/src/eflambe_brendan_gregg.erl
@@ -1,4 +1,5 @@
%%%-------------------------------------------------------------------
+%%% @copyright 2021 Trevor Brown (Apache-2.0 License)
%%% @doc
%%% Writes trace data to file formatted as Brendan Gregg's collapsed stack
%%% format.
diff --git a/src/eflambe_meck.erl b/src/eflambe_meck.erl
index 063d664..8d6f7b1 100644
--- a/src/eflambe_meck.erl
+++ b/src/eflambe_meck.erl
@@ -2,6 +2,7 @@
%%% @doc
%%% Helper functions for mocking with meck in eflambe
%%% @end
+%%% @hidden
%%%-------------------------------------------------------------------
-module(eflambe_meck).
diff --git a/src/eflambe_output_formatter.erl b/src/eflambe_output_formatter.erl
index c3f316e..2689520 100644
--- a/src/eflambe_output_formatter.erl
+++ b/src/eflambe_output_formatter.erl
@@ -1,4 +1,5 @@
%%%-------------------------------------------------------------------
+%%% @copyright 2021 Trevor Brown (Apache-2.0 License)
%%% @doc
%%% Output formatter behaviour. This behavior is used so we can swap in a stub
%%% for testing the tracer.
diff --git a/src/eflambe_plain.erl b/src/eflambe_plain.erl
index 65ccc5d..0b8524f 100644
--- a/src/eflambe_plain.erl
+++ b/src/eflambe_plain.erl
@@ -1,4 +1,5 @@
%%%-------------------------------------------------------------------
+%%% @copyright 2021 Trevor Brown (Apache-2.0 License)
%%% @doc
%%% Generates raw trace messages. This output format is for testing.
%%% @end
diff --git a/src/eflambe_server.erl b/src/eflambe_server.erl
index 5bd2166..6c87276 100644
--- a/src/eflambe_server.erl
+++ b/src/eflambe_server.erl
@@ -3,6 +3,7 @@
%%% E flambe server stores state for a capture trace that has been started.
%%% When no traced processes remain the server shuts down automatically.
%%% @end
+%%% @hidden
%%%-------------------------------------------------------------------
-module(eflambe_server).
@@ -69,8 +70,8 @@ start_link(MFA, Options) ->
%%--------------------------------------------------------------------
%% @doc
-%% Calls the eflambe_server gen_server to start a tracer for the current
-%% process. This is only used for `capture` style traces.
+%% Calls the `eflambe_server' gen_server to start a tracer for the current
+%% process. This is only used for `capture' style traces.
%%
%% @end
%%--------------------------------------------------------------------
@@ -89,8 +90,8 @@ start_capture_trace(ServerPid) ->
%%--------------------------------------------------------------------
%% @doc
-%% Calls the eflambe_server gen_server to stop a tracer for a specific
-%% process. This is only used for `capture` style traces.
+%% Calls the `eflambe_server' gen_server to stop a tracer for a specific
+%% process. This is only used for `capture' style traces.
%%
%% @end
%%--------------------------------------------------------------------
@@ -103,7 +104,7 @@ stop_capture_trace(ServerPid, Return) ->
%%--------------------------------------------------------------------
%% @doc
%% Starts the tracer in the current process (no gen_server). This is
-%% used for `apply` style traces only.
+%% used for `apply' style traces only.
%%
%% @end
%%--------------------------------------------------------------------
@@ -121,7 +122,7 @@ start_trace(Options) ->
%%--------------------------------------------------------------------
%% @doc
%% Stops a tracer and finishes a trace in the current process. This is
-%% used for `apply` style traces only as everything is done in the
+%% used for `apply' style traces only as everything is done in the
%% current process.
%%
%% @end
diff --git a/src/eflambe_sup.erl b/src/eflambe_sup.erl
index 48f8467..8570f2e 100644
--- a/src/eflambe_sup.erl
+++ b/src/eflambe_sup.erl
@@ -1,6 +1,7 @@
%%%-------------------------------------------------------------------
%% @doc eflambe top level supervisor.
%% @end
+%% @hidden
%%%-------------------------------------------------------------------
-module(eflambe_sup).
diff --git a/src/eflambe_svg.erl b/src/eflambe_svg.erl
index 21a8e8b..7812261 100644
--- a/src/eflambe_svg.erl
+++ b/src/eflambe_svg.erl
@@ -1,3 +1,9 @@
+%%%-------------------------------------------------------------------
+%%% @copyright 2021 Trevor Brown (Apache-2.0 License)
+%%% @doc
+%%% Generates SVG graphics from trace messages.
+%%% @end
+%%%-------------------------------------------------------------------
-module(eflambe_svg).
-behaviour(eflambe_output_formatter).
diff --git a/src/eflambe_tracer.erl b/src/eflambe_tracer.erl
index 1fb73be..03d6cf1 100644
--- a/src/eflambe_tracer.erl
+++ b/src/eflambe_tracer.erl
@@ -4,6 +4,7 @@
%%% gen_server is only intended to be used by the eflambe_server to receive
%%% trace messages and write them to the appropriate formatter module.
%%% @end
+%%% @hidden
%%%-------------------------------------------------------------------
-module(eflambe_tracer).